Rozsah platnosti, oblast platnosti nebo obor platnosti (anglicky scope) jména nebo spíše vazby jména na určitou entitu, např. proměnnou je v programování taková část programu, v níž je dané jméno svázáno s určitou entitou, takže je možné se daným jménem na tuto entitu odkazovat. V jiných částech programu se stejné jméno může odkazovat na jiné entity (tj. může mít jiné vazby) nebo na žádnou entitu (být nesvázané). Existence rozsahů platnosti omezuje kolize jmen, protože umožňuje, aby se stejné jméno odkazovalo na různé objekty – pokud jména mají různé rozsahy platnosti. Ve starší nebo techničtěji zaměřené literatuře se používá termín viditelnost entity, který však popisuje situaci z hlediska dostupnosti určité entity, nikoli z hlediska použitelnosti jména.
Termín „rozsah platnosti“ se také používá pro označení množiny všech vazeb jmen, které jsou platné v určité části programu nebo v daném místě programu, což se správněji nazývá kontext nebo prostředí.[pozn. 1]
Ve většině programovacích jazyků znamená „část programu“ pevnou část zdrojového kódu (jeho textu), což se také nazývá lexikální rozsah platnosti. V některých jazycích však „část programu“ znamená část doby běhu (tj. čas při běhu programu), a v tomto případě mluvíme o dynamickém rozsahu platnosti.[pozn. 2] Oba tyto termíny jsou poněkud klamavé – zneužívají technické termíny diskutované v části Definice – ale rozdíl je jednoznačný a přesný. Tento článek se zaměřuje na lexikální rozsah platnosti a dynamický rozsah platnosti ukazuje pouze jako jiný přístup k této problematice.
Rezoluce jmen je obvykle založena na lexikálních oblastech platnosti, které lze používat a implementovat poměrně přímočaře, protože při jejich použití můžeme ze zdrojového kódu určit, na kterou entitu se dané jméno odkazuje, a při implementaci je možné během překladu nebo interpretace programu udržovat seznam jmen a kontextů. Potíže přináší zastiňování jmen, dopředné deklarace a hoisting, menší problémy způsobuje používání nelokálních proměnných, především v uzávěrech.
Chybná citace: Nalezena značka <ref>
pro skupinu „pozn.“, ale neexistuje příslušná značka <references group="pozn."/>